🎖️GitЯра🎖️
src/helpers/radiolib/CustomSX1276.h 890a2e2cffa98dea3ca88db3c3aba72ef23ff3f7 (890a2e2c) Text, 2.59 KB
Tff7b72#Tff7b72pragma once
Tff7b72#Tff7b72include T8b949e<RadioLib.h>
Tff7b72#Tff7b72define RH_RF95_MODEM_STATUS_CLEAR 0x10
Tff7b72#Tff7b72define RH_RF95_MODEM_STATUS_HEADER_INFO_VALID 0x08
Tff7b72#Tff7b72define RH_RF95_MODEM_STATUS_RX_ONGOING 0x04
Tff7b72#Tff7b72define RH_RF95_MODEM_STATUS_SIGNAL_SYNCHRONIZED 0x02
Tff7b72#Tff7b72define RH_RF95_MODEM_STATUS_SIGNAL_DETECTED 0x01
Te6edf3class Te6edf3CustomSX1276 Tff7b72: Te6edf3public Te6edf3SX1276 Tb4b4b4{
Te6edf3publicTff7b72:
Te6edf3CustomSX1276Tb4b4b4(Te6edf3Module Tff7b72*Te6edf3modTb4b4b4) Tff7b72: Te6edf3SX1276Tb4b4b4(Te6edf3modTb4b4b4) Tb4b4b4{ Tb4b4b4}
Tff7b72#Tff7b72ifdef RP2040_PLATFORM
Tffa657bool Te6edf3std_initTb4b4b4(Te6edf3SPIClassRP2040Tff7b72* Te6edf3spi Tff7b72= Tffa657NULLTb4b4b4)
Tff7b72#Tff7b72else
Tffa657bool Te6edf3std_initTb4b4b4(Te6edf3SPIClassTff7b72* Te6edf3spi Tff7b72= Tffa657NULLTb4b4b4)
Tff7b72#Tff7b72endif
Tb4b4b4{
Tff7b72#Tff7b72ifdef LORA_CR
Tffa657uint8_t Te6edf3cr Tff7b72= Te6edf3LORA_CRTb4b4b4;
Tff7b72#Tff7b72else
Tffa657uint8_t Te6edf3cr Tff7b72= T79c0ff5Tb4b4b4;
Tff7b72#Tff7b72endif
Tff7b72#Tff7b72if defined(P_LORA_SCLK)
Tff7b72#Tff7b72ifdef NRF52_PLATFORM
Tff7b72if Tb4b4b4(Te6edf3spiTb4b4b4) Tb4b4b4{ Te6edf3spiTff7b72-Tff7b72>Te6edf3setPinsTb4b4b4(Te6edf3P_LORA_MISOTb4b4b4, Te6edf3P_LORA_SCLKTb4b4b4, Te6edf3P_LORA_MOSITb4b4b4)Tb4b4b4; Te6edf3spiTff7b72-Tff7b72>Te6edf3beginTb4b4b4(Tb4b4b4)Tb4b4b4; Tb4b4b4}
Tff7b72#Tff7b72elif defined(RP2040_PLATFORM)
Tff7b72if Tb4b4b4(Te6edf3spiTb4b4b4) Tb4b4b4{
Te6edf3spiTff7b72-Tff7b72>Te6edf3setMISOTb4b4b4(Te6edf3P_LORA_MISOTb4b4b4)Tb4b4b4;
T8b949e//spi->setCS(P_LORA_NSS); // Setting CS results in freeze
Te6edf3spiTff7b72-Tff7b72>Te6edf3setSCKTb4b4b4(Te6edf3P_LORA_SCLKTb4b4b4)Tb4b4b4;
Te6edf3spiTff7b72-Tff7b72>Te6edf3setMOSITb4b4b4(Te6edf3P_LORA_MOSITb4b4b4)Tb4b4b4;
Te6edf3spiTff7b72-Tff7b72>Te6edf3beginTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72#Tff7b72else
Tff7b72if Tb4b4b4(Te6edf3spiTb4b4b4) Te6edf3spiTff7b72-Tff7b72>Te6edf3beginTb4b4b4(Te6edf3P_LORA_SCLKTb4b4b4, Te6edf3P_LORA_MISOTb4b4b4, Te6edf3P_LORA_MOSITb4b4b4)Tb4b4b4;
Tff7b72#Tff7b72endif
Tff7b72#Tff7b72endif
Tffa657int Te6edf3status Tff7b72= Te6edf3beginTb4b4b4(Te6edf3LORA_FREQTb4b4b4, Te6edf3LORA_BWTb4b4b4, Te6edf3LORA_SFTb4b4b4, Te6edf3crTb4b4b4, Te6edf3RADIOLIB_SX126X_SYNC_WORD_PRIVATETb4b4b4, Te6edf3LORA_TX_POWERTb4b4b4, T79c0ff16Tb4b4b4)Tb4b4b4;
T8b949e// if radio init fails with -707/-706, try again with tcxo voltage set to 0.0f
Tff7b72if Tb4b4b4(Te6edf3status Tff7b72!Tff7b72= Te6edf3RADIOLIB_ERR_NONETb4b4b4) Tb4b4b4{
Te6edf3SerialTb4b4b4.Te6edf3printTb4b4b4(Ta5d6ff"Ta5d6ffERROR: radio init failed: Ta5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3SerialTb4b4b4.Te6edf3printlnTb4b4b4(Te6edf3statusTb4b4b4)Tb4b4b4;
Tff7b72return Tffa657falseTb4b4b4; T8b949e// fail
Tb4b4b4}
Tff7b72#Tff7b72ifdef SX127X_CURRENT_LIMIT
Te6edf3setCurrentLimitTb4b4b4(Te6edf3SX127X_CURRENT_LIMITTb4b4b4)Tb4b4b4;
Tff7b72#Tff7b72endif
Tff7b72#Tff7b72if defined(SX127X_RXEN) || defined(SX127X_TXEN)
Tff7b72#Tff7b72ifndef SX127X_RXEN
Tff7b72#Tff7b72define SX127X_RXEN RADIOLIB_NC
Tff7b72#Tff7b72endif
Tff7b72#Tff7b72ifndef SX127X_TXEN
Tff7b72#Tff7b72define SX127X_TXEN RADIOLIB_NC
Tff7b72#Tff7b72endif
Te6edf3setRfSwitchPinsTb4b4b4(Te6edf3SX127X_RXENTb4b4b4, Te6edf3SX127X_TXENTb4b4b4)Tb4b4b4;
Tff7b72#Tff7b72endif
Te6edf3setCRCTb4b4b4(T79c0ff1Tb4b4b4)Tb4b4b4;
Tff7b72return Tffa657trueTb4b4b4; T8b949e// success
Tb4b4b4}
Tffa657bool Te6edf3isReceivingTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4(Te6edf3getModemStatusTb4b4b4(Tb4b4b4) Tff7b72&
Tb4b4b4(Te6edf3RH_RF95_MODEM_STATUS_SIGNAL_DETECTED
Tff7b72| Te6edf3RH_RF95_MODEM_STATUS_SIGNAL_SYNCHRONIZED
Tff7b72| Te6edf3RH_RF95_MODEM_STATUS_HEADER_INFO_VALIDTb4b4b4)Tb4b4b4) Tff7b72!Tff7b72= T79c0ff0Tb4b4b4;
Tb4b4b4}
Tffa657int Te6edf3tryScanChannelTb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// start CAD
Tffa657int16_t Te6edf3state Tff7b72= Te6edf3startChannelScanTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3RADIOLIB_ASSERTTb4b4b4(Te6edf3stateTb4b4b4)Tb4b4b4;
T8b949e// wait for channel activity detected or timeout
Tffa657unsigned Tffa657long Te6edf3timeout Tff7b72= Te6edf3millisTb4b4b4(Tb4b4b4) Tff7b72+ T79c0ff16Tb4b4b4;
Tff7b72whileTb4b4b4(Tff7b72!Te6edf3thisTff7b72-Tff7b72>Te6edf3modTff7b72-Tff7b72>Te6edf3halTff7b72-Tff7b72>Te6edf3digitalReadTb4b4b4(Te6edf3thisTff7b72-Tff7b72>Te6edf3modTff7b72-Tff7b72>Te6edf3getIrqTb4b4b4(Tb4b4b4)Tb4b4b4) Tff7b72&Tff7b72& Te6edf3millisTb4b4b4(Tb4b4b4) Tff7b72< Te6edf3timeoutTb4b4b4) Tb4b4b4{
Te6edf3thisTff7b72-Tff7b72>Te6edf3modTff7b72-Tff7b72>Te6edf3halTff7b72-Tff7b72>Te6edf3yieldTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72ifTb4b4b4(Te6edf3thisTff7b72-Tff7b72>Te6edf3modTff7b72-Tff7b72>Te6edf3halTff7b72-Tff7b72>Te6edf3digitalReadTb4b4b4(Te6edf3thisTff7b72-Tff7b72>Te6edf3modTff7b72-Tff7b72>Te6edf3getGpioTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4(Te6edf3RADIOLIB_PREAMBLE_DETECTEDTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return T79c0ff0Tb4b4b4; T8b949e// timed out
Tb4b4b4}
Tb4b4b4}Tb4b4b4;
Served by rngit 1.5.4 - Generated in 0.04s